class: center, middle, inverse, title-slide .title[ # Visualizando datos con el paquete ggplot2 ] .subtitle[ ## Big Data e Inteligencia Territorial ] --- <style type="text/css"> .remark-slide-content { font-size: 25px; padding: 1em 1em 1em 1em; } <style type="text/css"> .remark-code{ line-height: 1.5; font-size: 80% } @media print { .has-continuation { display: block; } } </style> # Hoja de ruta <br><br> ## ✔️ ¿Por qué visualizar? ## ✔️ Estructura del código para visualizar ## ✔️ ggplot ☑️️ `operador + (nos va a permitir incorporar capas -como lo hacía el pipe %>%-) ` ☑️️ `geom_histogram()` / ☑️️ `geom_boxplol() ` / ☑️️ `geom_col()` / ☑️️ `chapa y pintura (Atributos)` --- # Referencia bibliográfica <br><br> - [ggplot2: Elegant Graphics for Data Analysis (_ggplot2: Gráficos elegantes para el análisis de datos_)](https://ggplot2-book.org/) - [The Grammar of Graphics - Leland Wilkinson ](https://books.google.com.mx/books?id=_kRX4LoFfGQC&hl=es&source=gbs_similarbooks) --- # Hasta ahora <img src="data:image/png;base64,#img/flujo_de_trabajo_viz.png" width="80%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # ¿Por qué visualizar? <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # ¿Por qué visualizar? <br> - _"La visualización es el proceso de hacer visibles los contrastes, ritmos y eventos que los datos expresan, que no podemos percibir cuando vienen en forma de áridas listas de números y categorías."_ [^1] <br> - Interpretar / decodificar la información de forma visual <br> [^1]: https://bitsandbricks.github.io/ciencia_de_datos_gente_sociable/visualizacion.html --- # ¿Por qué visualizar? .pull-left[
pais
n
Argentina
612
Estados Unidos
11
Chile
7
Uruguay
7
Bolivia
5
Brasil
4
Perú
4
Francia
3
Alemania
2
Ecuador
2
España
2
Italia
2
Países Bajos
2
Paraguay
2
] -- .pull-right[ <!-- --> ] --- # Pensar el grafico .pull-left[ <blockquote> "... hay algo en que el peor maestro de obras aventaja, desde luego, a la mejor abeja, y es el hecho de que, antes de ejecutar la construcción, **la proyecta en su cerebro**. .right[-- <cite>Carlitos Marx</cite>] </blockquote> ] -- .pull-right[ <img src="data:image/png;base64,#img/hombre_arania.png" width="100%" style="display: block; margin: auto;" /> ] --- class: middle, center, inverse <img src="data:image/png;base64,#img/ggplot_icon.png" width="20%" style="display: block; margin: auto;" /> _<p style="color:grey;" align:"center">Una forma de visualizar</p>_ --- class: inverse, middle, center # ¿Qué es [ggplot2](https://ggplot2.tidyverse.org/)? <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # __¿Qué es ggplot2?__ <br> - ### Una implementación del sistema **Grammar of graphics** (_Gramática de los gráficos_) <br> -- - ### Un esquema pensado en capas (datos --> plano (ejes **x** e **y**) --> geometrías) <br> -- - ### Un paquete de funciones de aplicación intuitiva. --- # Gramática de los gráficos <img src="data:image/png;base64,#img/ggplot_capas.jpg" width="60%" style="display: block; margin: auto;" /> --- # Gráficos en clave de capas <img src="data:image/png;base64,#img/gramatica_de_los_graficos.png" width="70%" style="display: block; margin: auto;" /> --- # ggplot() <img src="data:image/png;base64,#img/ggplot2_esquema.png" width="70%" style="display: block; margin: auto;" /> --- class: inverse, middle, center # __geom_histogram()__ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # geom_histogram() - **Caso:** Quiero conocer la distribución de los inmuebles del estado en función de su superficie (mts^2): --- # Capas del gráfico - insumo(dataframe) .pull-left[ ```r ggplot(`data = b_inmuebles`) ``` <br> - **¿De donde saco las variables?** ] .pull-right[ <!-- --> ] --- # Capas del gráfico - coordenadas .pull-left[ ```r ggplot(data = b_inmuebles, mapping = `aes(x = superficie_aproximada_m2))` ``` <br> - **¿Qué variables? ¿Cómo me las imagino en el gráfico?** ] .pull-right[ <!-- --> ] --- # Capas del gráfico - geometría .pull-left[ ```r ggplot(data = b_inmuebles, mapping = aes(x = superficie_aproximada_m2)) + `geom_histogram() ` ``` <br> - **¿Qué tipo de gráfico quiero hacer?** ] .pull-right[ <!-- --> ] --- # Chapa y pintura (Atributos) <br><br> ☑️️ `fill()` (_Rellenar_) ☑️️ `colour()` (_colorear_) ☑️️ `alpha` (_transparencia_) --- .pull-left[ ```r ggplot(data = b_inmuebles, mapping = aes(x = superficie_aproximada_m2)) + geom_histogram(`fill = "salmon"`) ``` <br> - **Relleno** ] .pull-right[ <!-- --> ] --- .pull-left[ ```r ggplot(data = b_inmuebles, mapping = aes(x = superficie_aproximada_m2)) + geom_histogram(fill = "salmon", `colour = "black"`) ``` <br> - **Contorno** ] .pull-right[ <!-- --> ] --- .pull-left[ ```r ggplot(data = b_inmuebles, mapping = aes(x = superficie_aproximada_m2)) + geom_histogram(fill = "salmon", colour = "black", `alpha = 0.5`) ``` <br> - **Transparencia** ] .pull-right[ <!-- --> ] --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica 1) Importar la base de inmuebles del Estado Nacional. 2) El siguiente código debería realizar un histograma. Para ello hace falta completar aquellos espacios con ______ y ejecutarlo: ```r ggplot(data = ______, mapping = aes(x = superficie_aproximada_m2)) ______ geom______ (fill = ______, colour = "black", alpha = 0.5) ``` 3) Replicar el código anterior y modificar los valores de los atributos a gusto --- class: inverse, middle, center # __geom_col()__ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # geom_col() **Caso:** Quiero visualizar la cantidad de inmuebles del Estado Nacional en el mundo y diferenciar cuántos hay en cada país: -- ```r unique(b_inmuebles$pais) ``` ``` [1] "Argentina" "Uruguay" "Perú" "Bolivia" [5] "Brasil" "Chile" "Estados Unidos" "Paraguay" [9] "España" "Francia" "Reino Unido" "Colombia" [13] "Alemania" "Arabia Saudí" "Australia" "Canadá" [17] "Dinamarca" "Ecuador" "Italia" "Irlanda" [21] "Japón" "Kenia" "México" "Países Bajos" [25] "Suecia" "Noruega" ``` --- # geom_col() ```r b_inmuebles %>% count(pais) %>% arrange(-n) ``` ``` # A tibble: 26 x 2 pais n <chr> <int> 1 Argentina 612 2 Estados Unidos 11 3 Chile 7 4 Uruguay 7 5 Bolivia 5 6 Brasil 4 7 Perú 4 8 Francia 3 9 Alemania 2 10 Ecuador 2 # ... with 16 more rows ``` --- count: false # geom_col .panel1-geom_col-auto[ ```r *ggplot(data = tabla_pais, * mapping = aes(x = pais, * y = n)) ``` ] .panel2-geom_col-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col-auto[ ```r ggplot(data = tabla_pais, mapping = aes(x = pais, y = n)) + * geom_col() ``` ] .panel2-geom_col-auto[ <!-- --> ] <style> .panel1-geom_col-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # geom_col() ### Probemos focalizar el análisis en aquellos inmuebles fuera del país ```r tabla_foraneos <- b_inmuebles %>% filter(pais != "Argentina") %>% count(pais) ``` --- count: false # geom_col .panel1-geom_col_foco-auto[ ```r *ggplot(data = tabla_foraneos, * aes(x = pais, * y = n)) ``` ] .panel2-geom_col_foco-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_foco-auto[ ```r ggplot(data = tabla_foraneos, aes(x = pais, y = n)) + * geom_col() ``` ] .panel2-geom_col_foco-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_foco-auto[ ```r ggplot(data = tabla_foraneos, aes(x = pais, y = n)) + geom_col() + * coord_flip() ``` ] .panel2-geom_col_foco-auto[ <!-- --> ] <style> .panel1-geom_col_foco-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_foco-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_foco-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false # geom_col - relleno .panel1-geom_col_1-auto[ ```r *ggplot(data = tabla_foraneos, * mapping = aes(x = pais, * y = n)) ``` ] .panel2-geom_col_1-auto[ <!-- --> ] --- count: false # geom_col - relleno .panel1-geom_col_1-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + * geom_col(fill = "green") ``` ] .panel2-geom_col_1-auto[ <!-- --> ] --- count: false # geom_col - relleno .panel1-geom_col_1-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(fill = "green") + * coord_flip() ``` ] .panel2-geom_col_1-auto[ <!-- --> ] <style> .panel1-geom_col_1-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_1-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_1-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false # geom_col - Contorno + Transparencia .panel1-geom_col_2-auto[ ```r *ggplot(data = tabla_foraneos, * mapping = aes(x = pais, * y = n)) ``` ] .panel2-geom_col_2-auto[ <!-- --> ] --- count: false # geom_col - Contorno + Transparencia .panel1-geom_col_2-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + * geom_col(aes(fill = pais), * colour = "black", * alpha = 0.7) ``` ] .panel2-geom_col_2-auto[ <!-- --> ] --- count: false # geom_col - Contorno + Transparencia .panel1-geom_col_2-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(aes(fill = pais), colour = "black", alpha = 0.7) + * coord_flip() ``` ] .panel2-geom_col_2-auto[ <!-- --> ] <style> .panel1-geom_col_2-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_2-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_2-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: inverse, middle, center # __chapa y pintura__ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- count: false # geom_col .panel1-geom_col_3-auto[ ```r *ggplot(data = tabla_foraneos, * mapping = aes(x = pais, * y = n)) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + * geom_col(aes(fill = pais), * colour = "black", * alpha = 0.7) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(aes(fill = pais), colour = "black", alpha = 0.7) + * coord_flip() ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(aes(fill = pais), colour = "black", alpha = 0.7) + coord_flip() + * labs(title = "Este es el título del gráfico", * subtitle = "Y este, el subtítulo", * x = "Acá puedo editar texto de eje x", * y = "y acá texto de eje y", * fill = "leyenda? Por supuesto, acá") ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(aes(fill = pais), colour = "black", alpha = 0.7) + coord_flip() + labs(title = "Este es el título del gráfico", subtitle = "Y este, el subtítulo", x = "Acá puedo editar texto de eje x", y = "y acá texto de eje y", fill = "leyenda? Por supuesto, acá") + * geom_text(aes(label = n)) ``` ] .panel2-geom_col_3-auto[ <!-- --> ] --- count: false # geom_col .panel1-geom_col_3-auto[ ```r ggplot(data = tabla_foraneos, mapping = aes(x = pais, y = n)) + geom_col(aes(fill = pais), colour = "black", alpha = 0.7) + coord_flip() + labs(title = "Este es el título del gráfico", subtitle = "Y este, el subtítulo", x = "Acá puedo editar texto de eje x", y = "y acá texto de eje y", fill = "leyenda? Por supuesto, acá") + geom_text(aes(label = n)) + * theme_minimal() ``` ] .panel2-geom_col_3-auto[ <!-- --> ] <style> .panel1-geom_col_3-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_3-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_3-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica - Dado el siguiente código que devuelve la cantidad de casos para las provincias seleccionadas, responder **visualmente** a la pregunta: ¿Cuál es la provincia que registra más casos?: ```r # tabla_provincia <- base_covid %>% # rename(provincia = residencia_provincia_nombre) %>% # filter(provincia %in% c("San Luis", "San Juan", "Santiago del Estero")) %>% # count(provincia) ``` 1. Hacer un gráfico de barras que muestre la cantidad de casos por provincia 1. Agregarle **color** a las barras en base a la variable **provincia** 1. Agregarle los textos de: **Titulo**, **Ejes x e y**, **Leyenda**. --- class: inverse, middle, center # Variables de tipo factor <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- # Orden de las categorías - Para darle orden a las categorías en un eje podemos recurrir al tipo de variable **factor**. -- - Los factores en R son variables categóricas (o llamadas "cualitativas"). -- - Además, otra propiedad de las variables de tipo **factor** es la ordinalidad (no es indistinto el orden de aparición). Por ejemplo, variables como *nivel educativo* o *grado de satisfacción* son variabes que (números o texto), son categóricas y ordinales. --- # Orden de las categorías ```r edad <- c(24,54,75,25,65,12) sexo_num <- c(1, 2, 2, 2, 1, 2) sexo_text <- c("hombre", "mujer", "mujer", "mujer", "hombre", "mujer") base <- data.frame(edad, sexo_num, sexo_text) ``` ```r class(base$sexo_num) ``` ``` [1] "numeric" ``` -- ```r class(base$sexo_text) ``` ``` [1] "character" ``` --- # Orden de las categorías - Convertimos en factor a la variable _sexo_num_ ```r base <- base %>% mutate(sexo_factor = factor(sexo_num, levels = c(1, 2), labels = c("Varón", "Mujer"))) ``` -- ```r base %>% count(sexo_factor) ``` ``` sexo_factor n 1 Varón 2 2 Mujer 4 ``` -- ### ¿Qué pasa si invierto el orden de los niveles (categorías) en el parámetro `level = `? --- # geom_col - factor ### Caso: Quiero saber la superficie media de los inmuebles según si son propiedad del Estado Nacional o si son alquilados --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r *b_inmuebles ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 677 x 12 codigo_del_inmueble organizacion pais provincia departamento localidad calle <dbl> <chr> <chr> <chr> <chr> <chr> <chr> 1 200002040 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Aven~ 2 200002059 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Aven~ 3 200002067 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Aven~ 4 200002075 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 3 <NA> Hipo~ 5 200002083 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Carl~ 6 200002091 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Carl~ 7 200002105 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Aven~ 8 200002113 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Humb~ 9 200002121 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> Hipo~ 10 200002131 AFIP ADMINI~ Arge~ Ciudad A~ Comuna 1 <NA> San ~ # ... with 667 more rows, and 5 more variables: numero <chr>, # situacion_inmueble <chr>, superficie_aproximada_m2 <dbl>, longitud <dbl>, # latitud <dbl> ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% * select(situacion_inmueble, superficie_aproximada_m2) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 677 x 2 situacion_inmueble superficie_aproximada_m2 <chr> <dbl> 1 Propiedad del ENA 946. 2 Propiedad del ENA 1361. 3 Propiedad del ENA 2740. 4 Propiedad del ENA 1461. 5 Propiedad del ENA 1138. 6 Propiedad del ENA 456. 7 Propiedad del ENA 842. 8 Propiedad del ENA 3295. 9 Propiedad del ENA 11166. 10 Propiedad del ENA 364. # ... with 667 more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% * mutate(situacion_inmueble_recod = factor(situacion_inmueble, * levels = c("Propiedad del ENA", * "Alquilado"), * labels = c("Propio", * "Alquilado"))) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 677 x 3 situacion_inmueble superficie_aproximada_m2 situacion_inmueble_recod <chr> <dbl> <fct> 1 Propiedad del ENA 946. Propio 2 Propiedad del ENA 1361. Propio 3 Propiedad del ENA 2740. Propio 4 Propiedad del ENA 1461. Propio 5 Propiedad del ENA 1138. Propio 6 Propiedad del ENA 456. Propio 7 Propiedad del ENA 842. Propio 8 Propiedad del ENA 3295. Propio 9 Propiedad del ENA 11166. Propio 10 Propiedad del ENA 364. Propio # ... with 667 more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% * group_by(situacion_inmueble_recod) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 677 x 3 # Groups: situacion_inmueble_recod [2] situacion_inmueble superficie_aproximada_m2 situacion_inmueble_recod <chr> <dbl> <fct> 1 Propiedad del ENA 946. Propio 2 Propiedad del ENA 1361. Propio 3 Propiedad del ENA 2740. Propio 4 Propiedad del ENA 1461. Propio 5 Propiedad del ENA 1138. Propio 6 Propiedad del ENA 456. Propio 7 Propiedad del ENA 842. Propio 8 Propiedad del ENA 3295. Propio 9 Propiedad del ENA 11166. Propio 10 Propiedad del ENA 364. Propio # ... with 667 more rows ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% * summarise( * sup_media = round(mean(superficie_aproximada_m2), * digits = 0)) ``` ] .panel2-geom_col_4-auto[ ``` # A tibble: 2 x 2 situacion_inmueble_recod sup_media <fct> <dbl> 1 Propio 16864 2 Alquilado 5250 ``` ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) %>% * ggplot(aes(x = situacion_inmueble_recod, * y = sup_media)) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) %>% ggplot(aes(x = situacion_inmueble_recod, y = sup_media)) + * geom_col(aes(fill = situacion_inmueble_recod), * colour = "black", * alpha = 0.7) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) %>% ggplot(aes(x = situacion_inmueble_recod, y = sup_media)) + geom_col(aes(fill = situacion_inmueble_recod), colour = "black", alpha = 0.7) + * labs(title = "Superficie media de los inmuebles según condición de propiedad", * subtitle = "Año 2019.", * x = "Condición de propiedad", * y = "Superficie media (en mts2)", * fill = "Condición de propiedad") ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) %>% ggplot(aes(x = situacion_inmueble_recod, y = sup_media)) + geom_col(aes(fill = situacion_inmueble_recod), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + * geom_text(aes(label = round(sup_media)), * vjust = -0.5) ``` ] .panel2-geom_col_4-auto[ <!-- --> ] --- count: false # geom_col + factor .panel1-geom_col_4-auto[ ```r b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) %>% ggplot(aes(x = situacion_inmueble_recod, y = sup_media)) + geom_col(aes(fill = situacion_inmueble_recod), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + geom_text(aes(label = round(sup_media)), vjust = -0.5) + * theme_minimal() ``` ] .panel2-geom_col_4-auto[ <!-- --> ] <style> .panel1-geom_col_4-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_4-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_4-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # geom_col + Variable con faceteado ```r tabla_facet <- b_inmuebles %>% filter(pais == "Argentina" & provincia == "Ciudad Autonoma de Buenos Aires") %>% select(departamento,situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(departamento, situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) ``` --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r *tabla_facet ``` ] .panel2-geom_col_5-auto[ ``` # A tibble: 28 x 3 # Groups: departamento [16] departamento situacion_inmueble_recod sup_media <chr> <fct> <dbl> 1 Comuna 1 Propio 1560 2 Comuna 1 Alquilado 3329 3 Comuna 10 Propio 786 4 Comuna 11 Propio 619 5 Comuna 11 Alquilado 500 6 Comuna 12 Propio 1126 7 Comuna 12 Alquilado 482 8 Comuna 13 Propio 10434 9 Comuna 13 Alquilado 234 10 Comuna 14 Propio 50023 # ... with 18 more rows ``` ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% * ggplot(aes(x = departamento, * y = sup_media)) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + * geom_col(aes(fill = departamento), * colour = "black", * alpha = 0.7) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + geom_col(aes(fill = departamento), colour = "black", alpha = 0.7) + * labs(title = "Superficie media de los inmuebles según condición de propiedad", * subtitle = "Año 2019.", * x = "Condición de propiedad", * y = "Superficie media (en mts2)", * fill = "Condición de propiedad") ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + geom_col(aes(fill = departamento), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + * theme_minimal() ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + geom_col(aes(fill = departamento), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + theme_minimal() + * theme( * legend.position = "none" * ) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + geom_col(aes(fill = departamento), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + theme_minimal() + theme( legend.position = "none" ) + * coord_flip() ``` ] .panel2-geom_col_5-auto[ <!-- --> ] --- count: false # geom_col + variable de control con faceteado .panel1-geom_col_5-auto[ ```r tabla_facet %>% ggplot(aes(x = departamento, y = sup_media)) + geom_col(aes(fill = departamento), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + theme_minimal() + theme( legend.position = "none" ) + coord_flip() + * facet_wrap(facets = "situacion_inmueble_recod", * nrow = 2) ``` ] .panel2-geom_col_5-auto[ <!-- --> ] <style> .panel1-geom_col_5-auto { color: black; width: 55.5333333333333%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-geom_col_5-auto { color: black; width: 42.4666666666667%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-geom_col_5-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: inverse, middle, center # _PRÁCTICA_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> --- class: inverse, middle # Práctica 1. Correr el siguiente código para armar la tabla con los datos a graficar: ```r tabla_ejercicio <- b_inmuebles %>% select(situacion_inmueble, superficie_aproximada_m2) %>% mutate(situacion_inmueble_recod = factor(situacion_inmueble, levels = c("Propiedad del ENA", "Alquilado"), labels = c("Propio", "Alquilado"))) %>% group_by(situacion_inmueble_recod) %>% summarise( sup_media = round(mean(superficie_aproximada_m2), digits = 0)) ``` --- class: inverse, middle # Práctica 2. Identificar el error en la siguiente sentencia, corregirlo y correr el gráfico. 3. Una vez corregido, modificar parámetros a gusto y corroborar los cambios en el gráfico. ```r ggplot(data = situacion_inmueble_recod, aes(x = tabla_ejercicio, y = sup_media)) + geom_col(aes(fill = situacion_inmueble_recod), colour = "black", alpha = 0.7) + labs(title = "Superficie media de los inmuebles según condición de propiedad", subtitle = "Año 2019.", x = "Condición de propiedad", y = "Superficie media (en mts2)", fill = "Condición de propiedad") + geom_text(aes(label = round(sup_media)), vjust = -0.5) + theme_minimal() ``` --- class: inverse, middle, center # _RECURSOS_ <html> <div style='float:left'></div> <hr color='#EB811B' size=1px width=1125px> </html> ---